#include <stdio.h>
//#include "sequence_table.h"
#include "link_list.h"
int main()
{
    // SqList list;
    // InitList(&list, sizeof(int));
    // for (int i = 0; i < 10; i++)
    // {
    //     int value = i * 2;
    //     ListInsert(&list, i, &value);
    // }
    // int value = 10;
    // int i = LocateElem(&list, &value);
    // printf("current index:%d\n", i);
    // printf("list length:%d\n", ListLength(&list));
    // ListDelete(&list, 5);
    // printf("list length:%d\n", ListLength(&list));
    // ListTraverse(&list);
    // ClearList(&list);
    
    LinkList L;
    InitList(&L);
    
    // 创建并追加三个节点
    Link n1, n2, n3;
    MakeNode(&n1, 10);
    MakeNode(&n2, 20);
    MakeNode(&n3, 30);
    Append(&L, n1);
    Append(&L, n2);
    Append(&L, n3);
    
    // 在n2前插入新节点
    Link new;
    MakeNode(&new, 15);
    InsBefore(&L, &n2, new);
    
    // 遍历打印
    printf("链表内容: ");
    ListTraverse(&L, printNode);  // 输出: 10 15 20 30
    
    // 删除节点
    ElemType deleted;
    Remove(&L, &n2, &deleted);
    printf("\n删除的值: %d\n", deleted);  // 输出: 20

    printf("链表内容: ");
    ListTraverse(&L, printNode);  
    
    // 清空链表
    ClearList(&L);
    DestroyList(&L);
    return 0;
}